package com.meituan.sdk.model.ddzhkh.generalreserve.generalreserveReserveConfig;

import com.meituan.sdk.annotations.ApiMeta;
import java.util.List;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;
import javax.validation.constraints.NotEmpty;

/**
* 更新预约配置
* This file was automatically generated.
*/
@ApiMeta(
    path = "/ddzhkh/generalreserve/reserve/config",
    businessId = 59,
    apiVersion = "10003",
    apiName = "generalreserve_reserve_config",
    needAuth = true
)
public class GeneralreserveReserveConfigRequest implements MeituanRequest<GeneralreserveReserveConfigResponse> {
    /**
    * <p data-diff-id="ct-diff-id-664848bc-57da-4878-b684-70b7d006ca69"><span style="color: rgb(31, 45, 61)">门店ID列表。</span><span style="color: rgba(0, 0, 0, 0.87)">该字段是混淆字段，实际值类型为混淆后的字符串类型</span></p>
    */
    @NotEmpty(message = "opPoiIds不能为空")
    @SerializedName("opPoiIds")
    private List<String> opPoiIds;
    /**
    * <p data-diff-id="ct-diff-id-803d6c34-a091-44f4-9cb7-2a5f98ec31da"><span style="color: rgb(31, 45, 61)">方案属性</span></p><p style="text-align: start;" data-diff-id="ct-diff-id-09b2f71c-0808-4d7e-acb2-1948ae8801a7"><span style="color: rgb(255, 74, 71)">注：</span></p><p style="text-align: start;" data-diff-id="ct-diff-id-4f0dfd63-a932-4e3b-a8c9-bb332a478b85">丽人开通预约时需要传以上四个属性[shopResvSwitch、connectionSystem、connectionMode、acceptMode]；</p><p style="text-align: start;" data-diff-id="ct-diff-id-cf0f184e-ac59-4e1a-93bf-6b2b334feea4">关闭预约时需要传三个属性[shopResvSwitch、connectionSystem、connectionMode]；</p><p style="text-align: start;" data-diff-id="ct-diff-id-b15c051f-1648-415f-8a50-76947db17ebd">修改接单模式时只需要acceptMode属性</p>
    */
    @NotBlank(message = "configAttrMap不能为空")
    @SerializedName("configAttrMap")
    private String configAttrMap;

    public List<String> getOpPoiIds() {
        return opPoiIds;
    }
    public void setOpPoiIds(List<String> opPoiIds) {
        this.opPoiIds = opPoiIds;
    }
    public String getConfigAttrMap() {
        return configAttrMap;
    }
    public void setConfigAttrMap(String configAttrMap) {
        this.configAttrMap = configAttrMap;
    }


    @Override
    public MeituanResponse<GeneralreserveReserveConfigResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<GeneralreserveReserveConfigResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "GeneralreserveReserveConfigRequest{" + "opPoiIds=" + opPoiIds + "," + "configAttrMap=" + configAttrMap + "}";
    }
}
